package warrap;

public class IntegerDemo {
    public static void main(String[] args) {
        // int 类型对应的包装类
        Integer i = new Integer(1);
        Integer j = new Integer(1);
        System.out.println(i == j);//比较地址 false
        System.out.println(i.equals(j));// 重写了equals 比较值 true

        int a=5;
        int b=5;
        System.out.println(a==b);
        Integer aI=new Integer(a);// 基本类型变为包装类
        Integer bI=new Integer(b);
        System.out.println(aI==bI);//false  包装类 比较地址
        System.out.println(aI.equals(bI));// true  重写了equals方法
        //valueOf()方法会复用1个字节(-128到127)范围内的数据，返回的包装类相同数字的地址值是一样的
        // 建议使用valueOf()
        Integer aII=Integer.valueOf(a);// 基本数据类型转为包装类的第二种方式
        Integer bII=Integer.valueOf(b);
        System.out.println(aII==bII);// ?  true
        System.out.println(aII.equals(bII));
        //valueOf()方法会复用1个字节(-128到127)范围内的数据，超过这个返回
        // 那就会new出新地址返回包装类对象
        a=250;
        b=250;
        Integer aIII=Integer.valueOf(a);
        Integer bIII=Integer.valueOf(b);
        System.out.println(aIII==bIII);// false
        System.out.println(aIII.equals(bIII));
        // 包装类不能参与数学运算
        //System.out.println(aIII+3);
        // 包装类 转变为基本类型
        int aa= aIII.intValue();
        System.out.println(aa+1);

        // Integer 类中其他方法
        int max = Integer.MAX_VALUE;
        System.out.println(max);
        int min= Integer.MIN_VALUE;
        System.out.println(min);

        String s="5";
        System.out.println(s+1);// 51
        int sint = Integer.parseInt(s);
        System.out.println(sint+1);
        int sum  = Integer.sum(4,7);
        System.out.println(sum);
        Integer.max(5,7);

        Integer aaa=a;//1.5 自动装箱  触发的Integer.ValueOf();
        int ac=aaa;// 自动拆箱  出发的是intValue();




    }
}
